This invention relates to artificial intelligence, and more particularly, to the construction of complex rules in an efficient and organized manner, wherein such constructed rules may be utilized or stored for later application.
Rules based systems have become prevalent over the past several years as a technique of managing complex business database and logistical systems. U.S. Pat. Nos. 5,875,440 and 5,899,991 (the ""440 and the ""991 patents, respectively) are examples of rules based systems used in database management. Additionally, U.S. patent application Ser. No. 09/338,994 now U.S. Pat. No. 6,442,537 describes a technique of constructing rules from templates based upon an induction process.
The automatic construction of rules, while known in the art, is typically not very efficient. Additionally, a structured technique of constructing rules from a known database would allow such systems to be implemented generically and then easily adapted to govern access to databases. Additionally, such a technique could extend into any area of rules based systems.
It is also desirable to allow for rules that are constructed using automated means to be utilized to construct other rules. Such a scenario permits recursive rule construction. It also permits flexibility in that it allows the automatic rules to be changed and updated as the environment changes.
The above and other problems of the prior art are overcome in accordance with the present invention which relates to a technique of systematically and efficiently constructing complex rules from atomic rules, other complex rules and/or template rules. In accordance with the invention, a database of rules is maintained and fed as needed into a rule constructor, which performs the appropriate processing and generates complex rules based thereon. The complex rules may then be stored or applied to particular objects. The rules may be constructed using template rules which are completed using specific atomic rules so that customized atomic or complex rules are constructed.
In order to assist in applying the complex rules to objects, a domain agent is defined which matches rules to objects upon which such rules should operate. The domain agent allows the rules to be independent of the objects upon which they are operating.